<?php
class Alerta_model extends CI_Model {

	public function __construct()
	{
		$this->load->database();
	}
	
	public function get_alert_by_id($idAlerta)
	{	
		$this->db->from('alerta');
		$query = $this->db->where('idAlerta',$idAlerta);
		$query = $this->db->join('tipoalerta','tipoalerta.idTipoAlerta=alerta.idTipoAlerta');
		$query = $this->db->get();
		return $query->row_array();
	}
	
	public function get_alert_info_add($idUsuario,$idAlerta)
	{	
		$query = $this->db->query(
		"select informacionadicional.idAlerta,
		alerta.posicionX, alerta.posicionY, informacionadicional.descripcion, informacionadicional.foto, informacionadicional.idUsuario, informacionadicional.foto, informacionadicional.idUsuario, alerta.idTipoAlerta, alerta.fecha, tipoalerta.nombreTipoAlerta 
		from informacionadicional, tipoalerta, alerta
		where  tipoAlerta.idTipoAlerta=alerta.idTipoAlerta and  alerta.idAlerta=informacionadicional.idAlerta and informacionadicional.idAlerta=".$idAlerta. " and informacionadicional.idUsuario=".$idUsuario);
		return $query->row_array();
	}
	
	public function get_all_alerts()
	{
		//ELEGIR Q VAS A SELECCIONAR PARA DEVOLVER
		$this->db->select("idAlerta,posicionX,posicionY,descripcion,idUsuario,alerta.idTipoAlerta,nombreTipoAlerta,fecha,foto");
		$this->db->from('alerta');
		$this->db->where('activo','1');
		$this->db->join('tipoalerta','tipoalerta.idTipoAlerta=alerta.idTipoAlerta');
		$query = $this->db->get();
		//echo $this->db->last_query();	
		return $query->result_array();
	}
	
	public function get_positions_nearby($posXini, $posXfin, $posYini, $posYfin)
	{
		//ELEGIR Q VAS A SELECCIONAR PARA DEVOLVER
		$this->db->select("idAlerta,posicionX,posicionY,descripcion,idUsuario,alerta.idTipoAlerta,nombreTipoAlerta,fecha,foto");
		$this->db->from('alerta');
		$posX="( posicionX BETWEEN ".$posXini." AND ".$posXfin." )";
		$this->db->where($posX);
		$posY="( posicionY BETWEEN ".$posYini." AND ".$posYfin." )";
		$this->db->where($posY);
		$this->db->where('activo','1');
		$this->db->join('tipoalerta','tipoalerta.idTipoAlerta=alerta.idTipoAlerta');
		$query = $this->db->get();
		//echo $this->db->last_query();	
		return $query->result();
	}
	
	
	public function set_follow_accident($idAlerta, $idUsuario){
		$this->db->select("idAlerta,idUsuario");
		$this->db->from('seguidor');
		$this->db->where('idAlerta',$idAlerta);
		$this->db->where('idUsuario',$idUsuario);
		$query = $this->db->get();
		
		if ($query->num_rows()==0)
		{
			$data = array(
			'idAlerta'=>$idAlerta,
			'idUsuario'=>$idUsuario);
			$this->db->insert('seguidor',$data);
			return $this->get_last_alusr();
		}
		else return "0";
	}
		
	public function set_alert_detail($idAlerta, $idUsuario,$descripcion,$hora,$file,$activo)
	{
		$data = array(
		'idAlerta'=>$idAlerta,
		'idUsuario'=>$idUsuario, 
		'descripcion'=>$descripcion,
		'hora'=>$hora, 
		'foto'=>$file);
		$this->db->insert('informacionadicional', $data);
		
		$data=array(
		'activo'=>$activo);
		$this->db->where('idAlerta',$idAlerta);
		$this->db->update('alerta',$data);
		
		
	}
	
	public function set_tipo_incidente($idAlerta){
		$data=array(
		'isEmergencia'=>'0',
		'activo'=>'0');
		$this->db->where('idAlerta',$idAlerta);
		$this->db->update('alerta',$data);
	}
	
	public function set_tipo_emergencia($idAlerta){
		$data=array(
		'isEmergencia'=>'1');
		$this->db->where('idAlerta',$idAlerta);
		$this->db->update('alerta',$data);
	}
	
	public function set_alerta_values($posicionX, $posicionY, $descripcion, $idUsuario, $idTipoAlerta, $fecha, $distrito)
	{	
		$data = array(
		'posicionX'=>$posicionX,
		'posicionY'=>$posicionY, 
		'descripcion'=>$descripcion,
		'idUsuario'=>$idUsuario, 
		'idTipoAlerta'=>$idTipoAlerta, 
		'fecha'=>$fecha,
		'distrito'=>$distrito,
		'activo'=>'1');
		$this->db->insert('alerta', $data);
		
		$idAlerta = $this->get_last_idalerta();
		$this->db->flush_cache();
		$this->set_follow_accident($idAlerta,$idUsuario);
		
		return $idAlerta;
	}	
		
	public function set_foto($idAlerta,$file){
		$data=array(
		'foto'=>$file);
		$this->db->where('idAlerta',$idAlerta);
		$this->db->update('alerta',$data);
	}
	
	public function get_last_idalerta(){
		$this->db->flush_cache();
        $this->db->select_max('idAlerta');
        $query = $this->db->get('alerta');
        return $query->row(0)->idAlerta;
    }
	
	public function get_last_alusr(){
		$this->db->flush_cache();
		$this->db->select_max('idAlerta');
		$query = $this->db->get('seguidor');
		return $query->row(0)->idAlerta;
	}
	
	function get_all_emergencias(){
		$this->db->select("idAlerta,posicionX,posicionY,descripcion,idUsuario,alerta.idTipoAlerta,nombreTipoAlerta,fecha,foto");
		$this->db->from('alerta');
		//$this->db->where('activo','1');
		$this->db->where('isEmergencia','1');
		$this->db->join('tipoalerta','tipoalerta.idTipoAlerta=alerta.idTipoAlerta');
		$query = $this->db->get();
		//echo $this->db->last_query();	
		return $query->result_array();		
	}
	
	function get_all_incidentes(){
		$this->db->select("idAlerta,posicionX,posicionY,descripcion,idUsuario,alerta.idTipoAlerta,nombreTipoAlerta,fecha,foto");
		$this->db->from('alerta');
		//$this->db->where('activo','1');
		$this->db->where('isEmergencia','0');
		$this->db->join('tipoalerta','tipoalerta.idTipoAlerta=alerta.idTipoAlerta');
		$query = $this->db->get();
		//echo $this->db->last_query();	
		return $query->result_array();		
	}
	
	public function get_data_veracidad($idAlerta){
		$query = $this->db->query(
		"select alerta.idUsuario as user, 'valida' as tipo, idAlerta, nombreTipoAlerta as tipoalerta, CONCAT(usuario.nombres,' ',usuario.apellidos) as nombre from alerta, tipoalerta, usuario where  tipoAlerta.idTipoAlerta=alerta.idTipoAlerta and  usuario.idUsuario=alerta.idUsuario and idAlerta=".$idAlerta);
		return $query->row_array();
	}
	
	public function get_data_emergencia($idAlerta){
		$query = $this->db->query(
		"select alerta.idUsuario as user, 'emergencia' as tipo, idAlerta, nombreTipoAlerta as tipoalerta, CONCAT(usuario.nombres,' ',usuario.apellidos) as nombre, alerta.posicionX as X, alerta.posicionY as Y from alerta, tipoalerta, usuario where  tipoAlerta.idTipoAlerta=alerta.idTipoAlerta and  usuario.idUsuario=alerta.idUsuario and idAlerta=".$idAlerta);
		return $query->row_array();
	}
	
	public function get_data_emergenciaCV($idAlerta,$wAmbu,$wAuto,$wCist){
		$query = $this->db->query(
		"select alerta.idUsuario as user, 'emergencia' as tipo, idAlerta, nombreTipoAlerta as tipoalerta, CONCAT(usuario.nombres,' ',usuario.apellidos) as nombre, alerta.posicionX as X, alerta.posicionY as Y, '".$wAmbu."' as ambu, '".$wAuto."' as auto, '".$wCist."' as cist from alerta, tipoalerta, usuario where  tipoAlerta.idTipoAlerta=alerta.idTipoAlerta and  usuario.idUsuario=alerta.idUsuario and idAlerta=".$idAlerta);
		return $query->row_array();
	}
	
	public function get_data_incidente($idAlerta){
		$query = $this->db->query(
		"select alerta.idUsuario as user, 'incidente' as tipo, idAlerta, nombreTipoAlerta as tipoalerta, CONCAT(usuario.nombres,' ',usuario.apellidos) as nombre, alerta.posicionX as X, alerta.posicionY as Y from alerta, tipoalerta, usuario where  tipoAlerta.idTipoAlerta=alerta.idTipoAlerta and  usuario.idUsuario=alerta.idUsuario and idAlerta=".$idAlerta);
		return $query->row_array();
	}
	
	public function get_data_act($idAlerta,$idUsuario){
		$query = $this->db->query(
		"select informacionadicional.idUsuario as user, 'empresa' as tipo, informacionadicional.idAlerta, nombreTipoAlerta as tipoalerta, CONCAT(usuario.nombres,' ',usuario.apellidos) as nombre 
		from informacionadicional, tipoalerta, usuario, alerta
		where  tipoAlerta.idTipoAlerta=alerta.idTipoAlerta and  usuario.idUsuario=informacionadicional.idUsuario and alerta.idAlerta=informacionadicional.idAlerta and informacionadicional.idAlerta=".$idAlerta. " and usuario.idUsuario=".$idUsuario);
		return $query->row_array();
	}
	
	public function get_data_postservicio($idPostServicio){
		$query = $this->db->query(
		"select postServicio.idUsuarioCampo as user, 'postservicio' as tipo, postServicio.idAlerta, nombreTipoAlerta as tipoalerta, postServicio.idPostServicio 
		from postservicio, tipoalerta, alerta 
		where tipoAlerta.idTipoAlerta=alerta.idTipoAlerta and postservicio.idAlerta=alerta.idAlerta and    postservicio.idPostServicio=".$idPostServicio);
		return $query->row_array();
	}
	
}